package com.qzsoft.zhjd.asphalt.modules.asphaltdata.mapper;

import java.util.List;
import java.util.Map;

import com.qzsoft.zhjd.asphalt.modules.asphaltdata.dto.DayDataStatisticsListDto;
import com.qzsoft.zhjd.asphalt.modules.asphaltdata.dto.ProduceAsphaltDto;
import com.qzsoft.zhjd.asphalt.modules.asphaltdata.dto.ReportCountDetailsDto;
import com.qzsoft.zhjd.asphalt.modules.asphaltdata.dto.ShellGlobalListDto;
import com.qzsoft.zhjd.asphalt.modules.asphaltdata.entity.AsphaltDataEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;

/**
 * @ClassName AsphaltDataMapper
 * @Description 沥青生产数据数据库接口
 * @author linhuawei
 * @since 2021-11-23
 */
@Mapper
public interface AsphaltDataMapper extends BaseMapper<AsphaltDataEntity> {

    /**
     * @Title produceAsphalt
     * @Description 获取油石比
     * @param params 查询条件
     * @return 油石比
     */
    public List<ProduceAsphaltDto> produceAsphalt(@Param("params") Map<String, Object> params);

//    /**
//     * @Title produceAsphaltPage
//     * @Description 油石比分页数据
//     * @param page   分页条件
//     * @param params 查询条件
//     * @return 油石比分页数据
//     */
//    public IPage<ProduceAsphaltDto> produceAsphaltPage(IPage<ProduceAsphaltDto> page,
//            @Param("params") Map<String, Object> params);
//
//    /**
//     * @Title produceAsphaltThreeDaysAvg
//     * @Description 获取前三天油石比平均值
//     * @param params 查询条件
//     * @return 前三天油石比平均值
//     */
//    public BigDecimal produceAsphaltThreeDaysAvg(@Param("params") Map<String, Object> params);

    /**
     * @Title dataListForDayDataStatistics
     * @Description 全天生产数据列表
     * @param params 查询条件
     * @return 全天生产数据列表
     */
    public List<DayDataStatisticsListDto> dataListForDayDataStatistics(@Param("params") Map<String, Object> params);


    /**
     * @Title selectTopOne
     * @Description 获取符合条件的一条数据
     * @param params 查询条件
     * @return 符合条件的一条数据
     */
    public AsphaltDataEntity selectTopOne(@Param("params") Map<String, Object> params);


    /**
     * @Title queryData
     * @Description 获取生产数据分页
     * @param params 查询条件
     * @return 生产数据分页
     */
    public IPage<AsphaltDataEntity> queryData(IPage<AsphaltDataEntity> page,
            @Param("params") Map<String, Object> params);

    /**
     * @Title queryData
     * @Description 获取生产数据列表
     * @param params 查询条件
     * @return 生产数据列表
     */
    public List<AsphaltDataEntity> queryData(@Param("params") Map<String, Object> params);


    /**
     * @Title reportCount
     * @Description 沥青混合料生产数据报表统计
     * @param params 查询条件
     * @return 沥青混合料生产数据报表统计
     */
    public IPage<ReportCountDetailsDto> reportCount(IPage<ReportCountDetailsDto> page, @Param("params") Map<String, Object> params);

    /**
     * @Title reportCount
     * @Description 沥青混合料生产数据报表统计
     * @param params 查询条件
     * @return 沥青混合料生产数据报表统计
     */
    public List<ReportCountDetailsDto> reportCount(@Param("params") Map<String, Object> params);

    /**
     * 获取所有有数据得时间
     * @return
     */
    List<String> requestTime(@Param("params") Map<String, Object> params);

    /**
     * 全局图
     * @param params
     * @return
     */
    List<ShellGlobalListDto> getShellGobalList(@Param("params") Map<String, Object> params);

    List<ReportCountDetailsDto> reportCounts(@Param("params")Map<String, Object> params);

    /**
     * @Title getProduceTime
     * @Description 获取生产时间
     * @param params 查询条件
     * @return 生产时间列表
     */
    public List<String> getProduceTime(@Param("params")Map<String, Object> params);
}
